package org.fisco.bcos.sdk.demo.contract;

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.fisco.bcos.sdk.v3.client.Client;
import org.fisco.bcos.sdk.v3.codec.datatypes.Bool;
import org.fisco.bcos.sdk.v3.codec.datatypes.Function;
import org.fisco.bcos.sdk.v3.codec.datatypes.Type;
import org.fisco.bcos.sdk.v3.codec.datatypes.TypeReference;
import org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple1;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple2;
import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple3;
import org.fisco.bcos.sdk.v3.contract.Contract;
import org.fisco.bcos.sdk.v3.crypto.CryptoSuite;
import org.fisco.bcos.sdk.v3.crypto.keypair.CryptoKeyPair;
import org.fisco.bcos.sdk.v3.model.CryptoType;
import org.fisco.bcos.sdk.v3.model.TransactionReceipt;
import org.fisco.bcos.sdk.v3.model.callback.TransactionCallback;
import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException;

@SuppressWarnings("unchecked")
public class ParallelOkLiquid extends Contract {
    public static final String[] BINARY_ARRAY = {
        "0061736d010000000168106000017f60017f0060037f7f7f017f60027f7f0060047f7f7f7f0060037f7f7f0060057f7f7f7f7f0060047f7f7f7f017f60017f017f60027f7f017f60027f7f017e60037f7f7f017e60077f7f7f7f7f7f7f0060000060047f7f7e7e0060077f7f7f7e7e7e7f00026b060462636f730f67657443616c6c4461746153697a6500000462636f730b67657443616c6c4461746100010462636f730a67657453746f7261676500020462636f730666696e69736800030462636f730672657665727400030462636f730a73657453746f726167650004036463030503050501050304060303030706000800050504090401030303050504030104010704040603070a03030205030b0302030305030304010003030303010101050205050c010107000d080305010d030e0903030f020108030509080201030202020205030100110609017f01418080c0000b072604066d656d6f7279020009686173685f74797065004e066465706c6f79004f046d61696e00540a8b9701635601037f02400240200128020022022001280204470d00410021020c010b20012002410c6a36020002402001280208220341016a22042003490d00200120043602080c010b00000b20002002360204200020033602000b210002402002410c490d002002410b1008000b20002002360204200020013602000b040000000b210002402002410c490d002002410b1008000b20002002360204200020013602000ba10101047f230041206b2203240020012f01e2012104200341003a001820032004360214200341003602102003200341106a106420032d00082105200328020421062003280200210402400340200541ff01710d01200420064b0d01200320013602142003200236021020032004360218200420064f2105200420042006496a2104200341106a100b0c000b0b2000200136020420002002360200200341206a24000b6101047f230041206b22012400200041086a2202280200210320002802042104200141106a41086a200228020036020020012000290200370310200141086a200141106a1011200128020c220020033b01e00120002004360200200141206a24000b5f01027f02400240024020022802002203450d00200141016a22042001490d022000200336020420002004360200200020022f01e0013602080c010b200041003602040b024041940241e40120011b2201450d0020022001100d0b0f0b00000bf70101037f02402000450d00200110611a410028028c83402102200041786a220120012802002203417e713602000240024002402003417c71220420006b20044b0d00200041003602002000417c6a280200417c712204450d0120042d00004101710d012001106320042802002100024020012d0000410271450d002004200041027222003602000b200221012000417c71220020046b41786a20004d0d020b00000b02402003417c712204450d004100200420034102711b2203450d0020032d00004101710d0020002003280208417c7136020020032001410172360208200221010c010b200020023602000b4100200136028c83400b0b7201027f0240200241016a22042002490d000240200420014f0d00200120026b220520014b0d012005417f6a220120054b0d0120002004410c6c6a20002002410c6c6a2001410c6c10661a0b20002002410c6c6a22022003290200370200200241086a200341086a2802003602000f0b00000b6601027f0240200241016a22052002490d000240200520014f0d00200120026b220620014b0d012006417f6a220120064b0d01200020054103746a200020024103746a200141037410661a0b200020024103746a220220043a0004200220033602000f0b00000b3c01027f024020012802002202417f6a220320024b0d00200020033602002000200128020420012802084102746a41e4016a2802003602040f0b00000b3c01027f024020012802002202417f6a220320024b0d00200020033602002000200128020420012802084102746a41e4016a2802003602040f0b00000b3c01027f024020012802002202417f6a220320024b0d00200020033602002000200128020420012802084102746a41e4016a2802003602040f0b00000b7601037f230041106b2204240020002802082105200028020422002f01e2012106200441086a200141086a28020036020020042001290200370300200041046a200641016a220120052004100e20004188016a22062001200520022003100f200020013b01e201200441106a2400200620054103746a0ba20201057f230041106b2205240020002802082106200028020422072f01e2012108200541086a200141086a28020036020020052001290200370300200741046a200841016a220920062005100e20074188016a2009200620022003100f0240200641016a22012006490d00200141016a22022001490d0002402002200841026a22064f0d00200620016b220820064b0d012008417f6a220320084b0d01200741e4016a220820024102746a200820014102746a200341027410661a0b200720014102746a41e4016a2004360200200720093b01e20120012006200120064b1b2106200028020021000240034020062001460d01200520073602042005200036020020052001360208200141016a21012005100b0c000b0b200541106a24000f0b00000b2301017f024041e401101622000d0000000b200041003b01e2012000410036020020000b080020004104101b0b2301017f0240419402101622000d0000000b200041003b01e2012000410036020020000b7201017f230041106b220324000240024020014100480d000240024020020d00200341086a200141011019200328020c2102200328020821010c010b2003200141014101101a20032802042102200328020021010b20010d010b00000b2000200136020020002002360204200341106a24000b3501017f230041106b22032400200341086a200120024100101a200020032802083602002000200328020c360204200341106a24000b4b000240024020010d00410021010c010b20012002101b2102024002402003450d002002450d0120024100200110671a0c020b20020d010b410021020b20002001360204200020023602000b7c01027f230041106b220224002000106121002002410028028c834036020c0240200020012002410c6a106222030d00200220002001105f4100210320022802000d0020022802042203200228020c3602082002200336020c200020012002410c6a106221030b4100200228020c36028c8340200241106a240020030b840201037f230041106b22042400024002402002450d0002400240024020014100480d00200328020022050d01200420012002101920042802042105200428020021030c020b20004101360200200041086a41003602000c030b0240200328020422060d00200441086a200120024100101a200428020c2105200428020821030c010b024020012002101b22030d00410021030c010b20032005200610651a20052006100d200121050b024002402003450d0020002003360204410021010c010b2000200136020441012101200221050b20002001360200200041086a20053602000c010b2000200136020420004101360200200041086a41003602000b200441106a24000b2601017f024020002802004100200028020422001b2201450d002000450d0020012000100d0b0b5301037f230041106b2202240020012802002103200241086a2001280208220141001018200228020821042000200228020c3602042000200436020020042003200110651a20002001360208200241106a24000b7100024002400240024020014105490d002001417b6a0e020102030b20004204370200200041086a20013602000f0b20004205370200200041086a41053602000f0b2000428580808010370200200041086a41003602000f0b2000428680808010370200200041086a200141796a3602000bb20101037f230041206b220224000240024020002802042203200028020822046b20014f0d00200420016a22012004490d01200320036a22042003490d0120042001200420014b1b22014108200141084b1b2101024002402003450d00200241106a41086a410136020020022003360214200220002802003602100c010b200241003602100b200220014101200241106a101c20022802004101460d01200020022902043702000b200241206a24000f0b00000b3601017f2000200210202000280200200028020822036a2001200210651a0240200320026a220220034f0d0000000b200020023602080b4701027f230041106b22032400200341086a200241001018200328020821042000200328020c3602042000200436020020042001200210651a20002002360208200341106a24000b1d00024020012003470d0020002002200110651a0f0b200120031024000b040000000b040000000ba10301027f02402001418102490d00418002210403402004450d010240024020042001490d0020012004470d010c030b200020046a2c000041bf7f4a0d020b2004417f6a21040c000b0b0240200220014b0d00200320014b0d00200220034b0d00024002402002450d00024020022001490d0020022001460d010c020b200020026a2c00004140480d010b200321020b034002400240024020020d00410021020c010b024020022001490d0020012002470d02200121020c010b200020026a2c00004140480d010b200120026b220420014b0d022004450d02200020026a22022c00002201417f4a0d0241002105200220046a22032100024020044101460d00200241026a210020022d0001413f7141067421050b200141ff017141e001490d024100210220032104024020002003460d00200041016a210420002d0000413f7121020b200141ff017141f001490d02200141ff017121012002200572210041002102024020042003460d0020042d0000413f7121020b20004106742001411274418080f0007172200272418080c400471a0c020b2002417f6a21020c000b0b00000b040000000b1f01017f41002104024020012003470d0020002002200110684521040b20040bfc0101067f4100210441012105410121064100210703400240024002402006220820046a22062008490d00200620024f0d01200720046a22092007490d00200920024f0d0002400240200120066a2d000041ff01712206200120096a2d000022094b2003710d00200620094f200372450d0020062009460d01200841016a22062008490d024101210541002104200821070c050b200441016a22062004490d01200820066a22062008490d01200620076b220520064b0d010c030b200441016a22092004490d00200921042008210620092005470d03200820056a220620084f0d020b00000b20002005360204200020073602000f0b410021040c000b0b3701017f230041106b22042400200441086a4100200320012002102b200020042802083602002000200428020c360204200441106a24000b470002400240200120024b0d000240200220044b0d00200220016b220420024b0d02200020043602042000200320016a3602000f0b200220041008000b20012002102c000b",
        "00000b040000000bb30201087f41002104410121054101210641002107024003400240024002402006220820046a22062008490d00200620014f0d04200841016a22062008490d00200620046a22092006490d00200120096b220920014b0d00200920014f0d00200741016a220a2007490d00200a20046a220b200a490d002001200b6b220a20014b0d00200a20014f0d0002400240200020096a2d000041ff017122092000200a6a2d0000220a4b2003710d002009200a4f200372450d002009200a460d014101210541002104200821070c040b200441016a22062004490d01200820066a22062008490d01200620076b220520064b0d010c020b200441016a22062004490d00024020062005460d0020062104200821060c030b200820056a220620084f0d010b00000b410021040b20052002470d000b0b20070b3501017e42002102024003402001450d012001417f6a210142012000310000423f83862002842102200041016a21000c000b0b20020ba00201027f230041306b22022400024002401000220341034b0d002001450d0020004181083b01000c010b2002200310302002280200220310010240024002402001450d0020022002280208220136021420022003360210024020014104490d002002410036021c200241106a2002411c6a410410310d00200241206a20022802141030200241106a2002280220220120022802281031450d02200241206a101d0b200041003a0001410121010c020b200041003a0000200041046a4100360200200041086a2002290300370200200041106a200241086a2802003602000c020b200228021c21032000410c6a2002290224370200200041086a2001360200200041046a2003360200410021010b200020013a00002002101d0b200241306a24000b3602017f017e230041106b22022400200241086a200141011018200229030821032000200136020820002003370200200241106a24000b3a01037f02402000280204220320024922040d002001200220002802002205200210232000200320026b3602042000200520026a3602000b20040b8b0102027f017e230041106b2203240002400240200220026a22042002490d00200341086a20044100101820032903082105200041003602082000200537020003402002450d02200020012d0000220441047641b482c0006a2d0000103320002004410f7141b482c0006a2d000010332002417f6a2102200141016a21010c000b0b00000b200341106a24000bab0201027f230041106b2202240002400240024002400240200141ff004b0d000240200028020822032000280204470d00200041011020200028020821030b200028020020036a20013a0000200341016a22012003490d01200020013602080c040b2002410036020c2001418010490d0102402001418080044f0d0020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010c020b00000b20022001413f71418001723a000d2002200141067641c001723a000c410221010b20002002410c6a200110210b200241106a24000b190020002001200210022200ad422086200045ad84428006840bc10905037f017e047f027e017f230041206b22022400200241003a0008024002400240024002400240024002402001200241086a410110310d000240024020022d0008220341037122044103460d0002400240024020040e03000201000b200341027621030c030b200220033a000d200241013a000c200220013602082002410036021c200241086a2002411c6a410410360d03200228021c220341ffff034d0d03200341027621030c020b200220033a000d200241013a000c20022001360208200241003b011c200241086a2002411c6a410210360d0220022f011c220341ff014d0d02200341027621030c010b200341044f0d0120022001103720022802000d012002280204220341ffffffff034d0d010b20012802042003490d00200241086a20031030024020012002280208220320022802101031450d00200241086a101d0c010b4100200229020c2205422088a7220641796a2201200120064b1b2107200341036a417c7120036b2108410021010340200120064f0d070240024002400240200320016a2d0000220441187441187522094100480d002008417f460d03200820016b4103710d030340200120074f0d03200320016a220441046a280200200428020072418081828478710d03200141086a22042001490d02200421010c000b0b42808080808020210a428080808010210b024002400240024002402004418080c0006a2d0000417e6a0e030002010e0b200141016a22042006490d024200210a0c0c0b4200210a200141016a220c20064f0d0b2003200c6a2d0000210c0240024002400240200441907e6a0e050100000002000b200c41ff017141bf014b0d0c2009410f6a41ff017141024b0d0c200c41187441187541004e0d0c0c020b200c41f0006a41ff017141304f0d0b0c010b200c411874411875417f4a0d0a200c41ff0171418f014b0d0a0b200141026a220420064f0d0b200320046a2d000041c00171418001470d084200210b200141036a220420064f0d0c200320046a2d000041c00171418001460d02428080808080e000210a0c0a0b4200210a200141016a220c20064f0d0a2003200c6a2d0000210c0240024002400240200441e001460d00200441ed01460d012009411f6a41ff0171410c490d02200c41ff017141bf014b0d0c200941fe017141ee01470d0c200c41187441187541004e0d0c0c030b200c41e0017141a001470d0b0c020b200c411874411875417f4a0d0a200c41ff017141a0014f0d0a0c010b200c411874411875417f4a0d09200c41ff017141bf014b0d090b4200210b200141026a220420064f0d0b200320046a2d000041c00171418001470d070c010b42808080808020210a428080808010210b200320046a2d000041c00171418001470d0a0b200441016a21010c030b00000b20012006200120064b1b21040340024020042001470d00200421010c030b200320016a2c00004100480d02200141016a21010c000b0b200141016a21010c000b0b200041003602000c060b428080808080c000210a0c010b42808080808020210a0b428080808010210b0c010b4200210b0b200a200b842001ad84210a0b024020012006490d0020002005370204200020033602000c010b2002200a3702142002200537020c20022003360208200241086a101d200041003602000b200241206a24000b4301017f20002f01042103200041003a0004024020034101710d0020002802002001200210310f0b200120034108763a00002000280200200141016a2002417f6a10310b4d01027f230041106b22022400410021032002410036020c0240024020012002410c6a410410310d00200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6f01037f230041106b220224000240024041002802908340220320016a22042003490d002004418080014b0d00200241086a2003200410392002280208200228020c20002001102341002802908340220320016a220120034f0d010b00000b410020013602908340200241106a24000b5001017f02400240200120024b0d0002402002418080014b0d00200220016b220320024b0d022000200336020420002001419483c0006a3602000f0b2002418080011008000b20012002102c000b00000b4601017f230041106b22022400200241086a41002802908340103b20022002280208200228020c2001103c2000200228020036020020002002280204360204200241106a24000b3a01017f230041106b22022400200241086a419483c000418080012001103c200020022802083602002000200228020c360204200241106a24000b21000240200320024d0d00200320021008000b20002003360204200020013602000b3601017f230041106b22012400200141086a41002802908340103b200020012802083602002000200128020c360204200141106a24000b2d01027f230041106b22002400200041086a410041002802908340103920002802082101200041106a240020010ba50101037f230041106b220224000240024002402001280208220341046a22042003490d002001280200210120002004104002402003413f4b0d002000200341027410410c030b0240200341ffff004b0d00200220034102744101723b010e20002002410e6a410210210c030b200341ffffffff034b0d012003410274410272200010420c020b00000b2000410310412003200010420b2000200120031021200241106a24000b3602017f017e230041106b22022400200241086a200141001018200229030821032000410036020820002003370200200241106a24000b2601017f230041106b22022400200220013a000f20002002410f6a41011021200241106a24000b2601017f230041106b220224002002200036020c20012002410c6a41041021200241106a24000b940202037f017e230041306b22012400200141086a41084100101820012802082102200128020c2103200041146a41023a0000200042083702082000200336020420002002360200200242e2c2b18be6edd8b2f30037000020014109410010182001410036022820012001290300370320200141206a41c482c000410810210240200128022822022001280224470d00200141206a41011020200128022821020b200128022020026a41243a00000240200241016a220320024f0d0000000b200141186a2003360200200120012903202204370310200041003602182000411c6a2004370200200041246a2003360200200041286a4109360200200041346a42003702002000412c6a4100360200200141306a24000b30002000101d0240200041146a2d00004102460d00200041106a2802004108100d0b2000411c6a101d200041306a10450ba30301067f230041306b22012400200028020421022000410036020402402002450d0020002802002103024003402003450d01200141003602282001200236022420012003360220200141186a200141206a1012200128021c2102200128021821030c000b0b20002802082104410021050340024020040d00410021030340200141206a20032002100c20012802242202450d03200128022021030c000b0b2004417f6a21044100210620052100200221030340024002400240200020032f01e2014f0d00200041016a2105024020060d00200321020c020b200120053602282001200336022420012006360220200141106a200141206a101220012802142102200128021021060340024020060d00410021050c030b200141003602282001200236022420012006360220200141086a200141206a1012200128020c2102200128020821060c000b0b200141206a20062003100c200128022422020d01410021020b20032000410c6c6a41046a101d200320004103746a4188016a2802004118100d0c020b20012802282100200128022021",
        "06200221030c000b0b0b200141306a24000bbc0102047f027e230041106b2203240020032002103f02400240200141186a2201200328020022042003280208220510472206450d002006280200220141086a410020012903004201511b21010c010b20012004200510480240200120042005104722010d00410021010c010b2001280200220141086a410020012903004201511b21010b2003101d200141e882c00020011b22012903002107200141086a29030021082002101d2000200837030820002007370300200341106a24000bf10101057f230041206b22032400024002402000411c6a2802002204450d00200041186a2802002105034020042f01e2012106200341003602182003200441046a2200360210200320002006410c6c6a360214024002400340200341086a200341106a1006200328020c2200450d012003280208210702402001200220002802002000280208104d41187441187541016a0e03000301000b0b200721060b2005450d022003200636021820032004360214200320053602102003200341106a101020032802042104200328020021050c010b0b200420074103746a4188016a21000c010b410021000b200341206a240020000bca0202057f027e230041c0006b22032400200341306a200010582003280234210420032802302001200210214101210502402004280200220641016a22072006480d0020042007360200200341286a20001059200328022c210402400240200328022822062802002006280208103e10342208a7410171450d000c010b2008422088a72205418180014f0d01410020053602908340200341206a2005103a20032003290320370338200341086a200341386a105520032802084100472105200341186a2903002109200329031021080b20042802002206417f6a220720064e0d00200420073602002003200010582003280204210402402003280200220628020820002802102207490d00200620073602080b2004280200220641016a22072006480d00200420073602002000200120022005410173ad200820094100105a200341c0006a24000f0b00000b4701027f230041106b22032400200341086a200241001018200328020821042000200328020c3602042000200436020020042001200210651a20002002360208200341106a24000b990403077f017e067f024002402005417f6a220720054b0d0020012802082208417f6a210920052001280210220a6b220b20054b210c2001280214210d2001290300210e0340200d20076a220f200d490d010240200f2003490d00200120033602144100210f0c030b0240200e2002200f6a310000423f8388420183500d0020082008200128021c221020061b200820104b1b220f2005200f20054b1b2111034002402011200f470d004100201020061b21112009210f034002402011200f41016a490d00200d20056a220f200d490d062001200f360214024020060d002001410036021c0b2000200d360204200041086a200f3602004101210f0c070b200f20054f0d05200d200f6a2212200d490d05201220034f0d052004200f6a2113200f417f6a210f20132d000041ff0171200220126a2d0000460d000b200d200a6a220f200d490d042001200f360214200f210d20060d03200c0d042001200b36021c200f210d0c030b200d200f6a2212200d490d03201220034f0d032004200f6a2113200f41016a2214210f20132d000041ff0171200220126a2d0000460d000b2014417f6a221220086b220f20124b0d02200f41016a2212200f490d02200d20126a220f200d490d022001200f360214200f210d20060d012001410036021c200f210d0c010b200d20056a220f200d490d012001200f360214200f210d20060d002001410036021c200f210d0c000b0b00000b2000200f3602000b5b01017f230041206b22012400200141086a4101410010182001410036021820012001290308370310200120002d00003a001f200141106a2001411f6a41011021200128021020012802181003200141106a101d200141206a24000b2a01017f230041106b2201240020012000103f2001280200200128020810042001101d200141106a24000b310002402000200220032001200120034b1b106822000d00417f200120034720012003491b0f0b417f410120004100481b0b040041000be90201057f23004190016b22002400200041186a1043200041d8006a4100102f02400240024020002d00580d00200041f0006a41086a200041d8006a410c6a2902003703002000200029025c37037020004180016a41086a200041f0006a410c6a28020036020020002000290274370380010240200041186a10500d00200041106a200041186a410c6a220110512000280214210220002802104101410010522002280200220341016a22042003480d0320022004360200200041086a20011051200028020c21020240200028020822032d00044102460d00200341013a00040b2002280200220341016a22012003480d03200220013602000b200041186a105320004180016a101d0c010b200041f0006a41f882c00041141022200041f0006a104c200041f0006a101d0b200041186a101d02402000412c6a2d00004102460d00200041286a2802004108100d0b200041346a101d200041c8006a104520004190016a24000f0b00000b0d002000105c200041106a105d0b2a0002402001280200450d0041101027000b2001417f360200200020013602042000200141046a3602000b4701017f024020002d00044102470d004108410410572203200236020420032001360200200041003a0004200020033602000f0b200028020022002002360204200020013602000ba70901087f23004190016b22012400200141d8006a2000410c6a2202105e200128025c22032802002204417f6a220520044e210402400240024020012802582d000422064102460d0020040d02200320053602002006450d01200141d0006a200210512001280254210402402001280250105d2203450d00410041003602908340200028020821052000280200210620012003280200360260200141e0006a41041038200141c8006a103d200620052001280248200128024c10050b2004280200220341016a22052003480d0220042005360200200141c0006a20021051200128024421040240200128024022032d00044102460d00200341003a00040b2004280200220341016a22052003480d02200420053602000c010b20040d01200320053602000b41002102024002402000412c6a28020041016a220441004c0d002000200436022c0240200041346a28020022030d0041002103410021040c020b20032102200041306a28020022042105034020032f01e2012106024020050d0020040d04200041386a28020021040c030b2004450d03200141003602682001200236026420012005360260200141386a200141e0006a1010200128023c210220012802382105200120063602682001200336026420012004360260200141306a200141e0006a101020012802342103200128023021040c000b0b41181027000b200041186a2107200141f4006a2006360200200141e0006a41106a20033602002001420037036820012002360264200120053602600340024002402004450d0020012004417f6a360278200141e0006a410020012802641b22082802002103200828020821022008280204210402400340200220042f01e201490d0120042802002205450d01200341016a22062003490d0520042f01e001210220062103200521040c000b0b200241016a2106024020030d00200421050c020b200120063602880120012004360284012001200336028001200141286a20014180016a1010200128022c2105200128022821030340024020030d00410021060c030b200141003602880120012005360284012001200336028001200141206a20014180016a101020012802242105200128022021030c000b0b200028022c2204417f6a220320044e0d022000200336022c20014190016a24000f0b2008200536020420084100360200200820063602080240200420024103746a2203418c016a2d0000450d0020034188016a28020022032903004201520d00200141186a20071058200128021c2105200128021820042002410c6c6a220441046a2802002004410c6a28020010212005280200220441016a22022004480d0220052002360200200141106a2007105920012802102204280200210541004100360290834020042802082102200128021421042001200341106a29030037038801200120032903083703800120014180016a41101038200141086a103d200520022001280208200128020c100520042802002203417f6a220520034e0d02200420053602002001200710582001280204210402402001280200220328020820002802282205490d00200320053602080b2004280200220341016a22052003480d02200420053602000b200128027821040c000b0b00000be41f07027f017e017f017e017f057e047f230041c0036b22002400200041a8016a1043200041f0026a4101102f0240024002400240024002400240024002400240024002400240024020002d00f0024101460d00200041e8016a41086a20004180036a28020022013602002000200041f0026a41086a29030022023703e80120002802f4022103200041f8016a41086a2001360200200020023703f801200341bed691ca05460d01200341f0d9c1c007460d03200341c4a58a987e460d04200341facdc17c460d02200020033602f00220004188016a410472200041f0026a41041049410021032000410036028801200041f8016a101d200041a8016a10440c0d0b4102210320004102360288010c0b0b200020002802800236029402200020002802f80136029002200041b0036a20004190026a1035024020002802b003450d00200041a0026a41086a200041b0036a41086a2802002203360200200020002903b00322023703a002200041f0026a41086a2003360200200020023703f0022000200041a8016a200041f0026a1046200041086a290300210220002903002104200041d0026a41101040200020023703f802200020043703f002200041d0026a200041f0026a4110102120002802d00220002802d8021003200041d0026a101d20004103360288010c0a0b200041f0026a41047241cc82c00041041022200041f0026a41106a22032000280290022000280294021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c090b200020002802800236029402200020002802f80136029002200041b0036a20004190026a103520002802b003450d02200041a0026a41086a2203200041b0036a41086a280200360200200020002903b0033703a002200041106a20004190026a10550240200029",
        "0310a70d00200041106a41106a290300210220002903182104200041f0026a41086a2003280200360200200020002903a0023703f002200041a8016a200041f0026a200420021056200041a8016a105320004103360288010c090b200041f0026a41047241d082c00041031022200041f0026a41106a200028029002200028029402104920004188016a410c6a200041f0026a410c6a29020037020020004188016a41146a200041f0026a41146a2902003702002000410136028801200020002902f40237028c01200041a0026a101d0c080b200020002802800236028c02200020002802f80136028802200041b0036a20004188026a103520002802b003450d0220004190026a41086a200041b0036a41086a2203280200360200200020002903b00337039002200041b0036a20004188026a103520002802b003450d03200041a0026a41086a2003280200360200200020002903b0033703a002200041c8006a20004188026a1055024020002802480d00200041c8006a41106a290300210220002903502104200041b0026a41086a20004190026a41086a28020036020020002000290390023703b002200041d0026a41086a200041a0026a41086a280200360200200020002903a0023703d002200041f0026a200041b0026a101e200041386a200041a8016a200041f0026a104602400240200029033822062004542201200041386a41086a2903002207200254200720025122031b0d00200041f0026a200041b0026a101e200041a8016a200041f0026a200620047d200720027d2001ad7d1056200041f0026a200041d0026a101e200041286a200041a8016a200041f0026a1046200041286a41086a290300210820002903282109200041f0026a200041d0026a101e200920047c220a2009542201200820027c2001ad7c220920085420092008511b0d07200041a8016a200041f0026a200a20091056200041d0026a101d200041b0026a101d200041a8016a21010c010b200041d0026a101d200041b0026a101d200041a8016a21010b2000200620045a200720025a20031b3a00f00220011053200041f0026a104b20004103360288010c080b200041f0026a41047241d982c00041051022200041f0026a41106a200028028802200028028c02104920004188016a410c6a200041f0026a410c6a29020037020020004188016a41146a200041f0026a41146a2902003702002000410136028801200020002902f40237028c01200041a0026a101d0c060b200020002802800236029402200020002802f80136029002200041b0036a20004190026a1035024020002802b003450d00200041a0026a41086a200041b0036a41086a2802002203360200200020002903b00322023703a002200041b0026a41086a2003360200200020023703b0022002a72101024002402003450d0020004180016a2001200341001029200028028401210b2000280280012105200041f8006a2001200341011029200028027c210c200041f0006a2001200320052000280278220d2005200d4b220e1b220d102a200b200c200e1b2205200d6a220b2005490d062000280274210c2000280270210e200041e8006a2005200b20012003102b02400240200e200c2000280268200028026c10280d002003200d6b220520034b0d08200d2005200d20054b1b220b41016a2205200b490d08417f210b20012003102e2102200d210c417f210e0c010b4100210b20032001200320054100102d220c2001200320054101102d220e200c200e4b1b6b220c20034b0d07200041e0006a200120032005102a20002802602000280264102e21022003210e0b200041ac036a2003360200200041a4036a410036020020004198036a200e36020020004194036a200b3602002000418c036a420037020020004188036a200536020020004184036a200c36020020004180036a200d360200200041f8026a2002370300200020013602a803200041e082c0003602a003200041013602f0022002422088a7210d200321050c010b41002105200041ac036a4100360200200041a4036a4100360200200041fc026a4181023b0100200041f0026a41086a4100360200200020013602a803200041e082c0003602a003200042003703f0024101210d0b024002402003450d00200041f8026a2103024020004194036a280200417f460d00200041d0026a200341e082c0004100200120054100104a0c020b200041d0026a200341e082c0004100200120054101104a0c010b20002802f40222030d060240200d41ff0171450d00200041d8026a2003360200200020033602d402200041013602d0020c010b200041003602d0020b20002802d0022103200041b0026a101d200020033a00f002200041f0026a104b20004103360288010c070b200041f0026a41047241e082c00041051022200041f0026a41106a22032000280290022000280294021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c060b200041f0026a41047241cc82c00041041022200041f0026a41106a22032000280290022000280294021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c050b200041f0026a41047241d382c00041041022200041f0026a41106a2203200028028802200028028c021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c040b200041f0026a41047241d782c00041021022200041f0026a41106a2203200028028802200028028c021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c020b00000b41e082c0004100200341001026000b20004190026a101d0b200041f8016a101d20002802880121030b200041a8016a10440b024002400240024020034103460d0020004188016a41047221010240024020030e03030001030b200041b0036a41086a2203200141086a280200360200200020012902003703b003200041b0026a41086a2201200041a0016a280200360200200020004198016a2903003703b002200041d0026a419282c00041141022200041d0026a20002802b00320032802001021200041d0026a41a682c00041031021200041a8016a20002802b00220012802001032200041d0026a20002802a80120002802b0011021200041a8016a101d200041f0026a41086a200041d0026a41086a280200360200200020002903d0023703f002200041003a00fc02200041b0026a101d200041b0036a101d0c030b200041f0026a41f882c00041141022200041003a00fc020c020b200042003702f402200041013a00fc02200041002802ac82403602f0020c020b200041b0026a41086a2203200141086a280200360200200020012902003703b002200041d0026a418082c00041121022200041a8016a20002802b00220032802001032200041d0026a20002802a80120002802b0011021200041a8016a101d200041f0026a41086a200041d0026a41086a280200360200200020002903d0023703f002200041003a00fc02200041b0026a101d0b200041a8016a200041f0026a101e200041a8016a104c200041a8016a101d0b200041f0026a101d200041c0036a24000b6d04017f017e017f027e230041106b2202240042002103200241086a22044200370300200242003703000240024020012002411010310d0020042903002105200229030021060c010b420121030b2000200637030820002003370300200041106a2005370300200241106a24000bd90202057f017e230041106b22042400024002400240200010502205450d002005280200417f460d0220042001103f02400240200041186a22052004280200220620042802082207105b2208450d00200841013a0004200828020022082903002109200842003703000c010b20052006200710480240200520062007105b22080d00420021090c010b200841013a0004200828020022082903002109200842003703000b02400240200520062007105b2208450d0020082802002205200237030820054201370300200541106a2003370300200841013a00040c010b2005200620074201200220034101105a0b024020094201510d002000105c200041146a2d00004102460d03200041013a0014200041106a28020022002802004101470d022000280204220541016a22062005490d03200020063602040b2004101d2001101d200441106a24000f0b41d0001025000b41d3001025000b00000b1300024020002001101b22000d0000000b20000b2a0002402001280200450d0041101027000b2001417f360200200020013602042000200141046a3602000b3301017f0240200128020041016a220241004a0d0041181027000b20012002360200200020013602042000200141046a3602000be20d010f7f23004180016b220724004118410810572208200437030820082003370300200841106a2005370300024002400240024002400240024020002802140d002000417f36021441002109200741c8006a200241001018200728024c210a2007280248200120021065210b200720023602682007200a3602642007200b360260024002402000411c6a280200220c450d00200028021821090c010b20001015220c36021c200041003602180b02400340200c2f01e201210d200741003602782007200c41046a220136027020072001200d410c6c6a36027402400340200741c0006a200741f0006a100620072802442201450d012007280240210e0240200b200220012802002001280208104d41187441187541016a0e",
        "03000401000b0b200e210d0b02402009450d002007200d3602782007200c36027420072009360270200741386a200741f0006a1011200728023c210c200728023821090c010b0b200741003602502007200dad422086200cad8437025402400240200c2f01e201410b490d00200741f0006a200d101f200741f8006a280200210f200728027421102007280270210110152111200c2f01e201220d20016b220e200d4b0d09200e417f6a2209200e4b0d09201120093b01e201200141016a22122001490d09200d20126b220e200d4b0d09200c20014103746a220d4188016a2802002113200d418c016a2d00002114200c2001410c6c6a220d41046a2802002115200d41086a2902002105200741306a201141046a20091007200e2007280234470d092007280230200c2012410c6c6a41046a200e410c6c10651a200741286a20114188016a20091009200e200728022c470d092007280228200c20124103746a4188016a200e41037410651a200c20013b01e2012007200f36026820072011200c20101b3602644100210d20074100360260200720023602782007200a3602742007200b360270200741e0006a200741f0006a2008200610131a20144101712109410021020340200c2802002201450d02200d41016a220e200d490d0a2007200c2f01e001220b360258200720013602542007200e360250200e417f6a2002470d0a2009410171210a20012f01e201410b490d06200741f0006a200b101f200728027821122007280274210f2007280270210220012f01e20121061017210b20012f01e201220920026b220c20094b0d0a200c417f6a2208200c4b0d0a200b20083b01e201200241016a220c2002490d0a2009200c6b220d20094b0d0a20012002410c6c6a220941086a2902002103200941046a2802002110200120024103746a22094188016a28020021142009418c016a2d00002109200741206a200b41046a20081007200d2007280224470d0a20072802202001200c410c6c6a41046a200d410c6c10651a200741186a200b4188016a20081009200d200728021c470d0a20072802182001200c4103746a4188016a200d41037410651a200120023b01e201200641016a220d200c6b2202200d4b0d0a200b2f01e201220d41016a2108200d410c4f0d0520022008470d0a200b41e4016a2001200c4102746a41e4016a200241027410651a200741106a200b200e100a2007280214210b20072802102102200e210c2001210d0240200f450d002002210c200b210d0b20094101712109200720123602682007200d3602642007200c3602602007200537027420072015360270200741e0006a200741f0006a2013200a20111014200e210d2010211520032105200b2111201421132001210c0c000b0b200720023602782007200a3602742007200b360270200741d0006a200741f0006a2008200610131a0c050b2000411c6a280200220b450d07200028021821011017220e200b3602e401200141016a220b2001490d07200741086a200e200b100a2007280208210b2000200728020c220136021c2000200b360218200b417f6a220e200b4b0d07200e2002470d0720012f01e2012202410a4b0d072001200241016a220e3b01e20120012002410c6c6a220c41086a2005370200200c41046a2015360200200120024103746a2202418c016a20094101713a000020024188016a20133602002001200e4102746a41e4016a20113602002007200e360278200720013602742007200b360270200741f0006a100b200041206a2201280200220b41016a2202200b490d070c050b200741e0006a101d200c200e4103746a2201418c016a20063a000020014188016a220128020021022001200836020020024118100d0c050b41101027000b2008410c1008000b2007200537027420072015360270200741d0006a200741f0006a2013200a201110140b200041206a2201280200220b41016a2202200b490d020b200120023602000b2000280214220141016a22022001480d002000200236021420074180016a24000f0b00000bf10101057f230041206b22032400024002402000411c6a2802002204450d00200041186a2802002105034020042f01e2012106200341003602182003200441046a2200360210200320002006410c6c6a360214024002400340200341086a200341106a1006200328020c2200450d012003280208210702402001200220002802002000280208104d41187441187541016a0e03000301000b0b200721060b2005450d022003200636021820032004360214200320053602102003200341106a101120032802042104200328020021050c010b0b200420074103746a4188016a21000c010b410021000b200341206a240020000b810202057f027e230041306b22012400200141206a2000410c6a2202105e0240200128022422032802002204417f6a220520044e0d0020012802202d0004210420032005360200024020044102470d0042012106024020002802002000280208103e10342207a74101710d002007422088a72200418180014f0d02410020003602908340200141186a2000103a20012001290318370328200141106a200141286a103720013502144220862001280210410047ad8421060b200141086a20021051200128020c210020012802082006a7417f734101712006422088a710522000280200220441016a22032004480d01200020033602000b200141306a24000f0b00000b2600024020002d00044102470d0000000b2000280200220041046a410020002802004101461b0b3301017f0240200128020041016a220241004a0d0041181027000b20012002360200200020013602042000200141046a3602000bc80101017f0240200141ffffffff03712001470d00200241c0006a22032002490d00200341ffffffff01712003470d002001410274220120034103742203200120034b1b220141086a22032001490d00024002402003418080041060220340002201417f470d0041012103410021010c010b200141ffff03712001470d01200341ffff03712003470d012003411074220341786a20034b0d012001411074220142003702042001200120036a410272360200410021030b20002001360204200020033602000f0b00000b2901017f02400240200020016a22022000490d002002417f6a220020024d0d010b00000b200020016e0b08002000410410600bc104010b7f2000410274210341002104410020016b2105200041ffffffff037120004721062001417f6a220720014b210820022802002100024003402000450d01200021010240024003400240200128020822004101710d0020060d032001280200417c712209200141086a220a6b220b20094b0d03200b2003490d02200920036b220c20094b0d0320080d03200a41086a220b200a490d03200b41c0006a220d200b490d0302400240200d200c200571220b4d0d002007200a710d0420022000417c7136020020012001280200410172360200200121000c010b200b41786a2200200b4b0d04200920006b220220094b0d04200241786a20024b0d04200041003602082000420037020020002001280200417c71360200024020012802002202417c712209450d004100200920024102711b2202450d00200220022802044103712000723602040b2000200028020441037120017236020420012001280208417e7136020820012001280200220241037120007222093602000240024020024102710d00200028020021010c010b20012009417d713602002000200028020041027222013602000b200020014101723602000b200041086a21040c050b20012000417e71360208024002402001280204417c7122000d00410021000c010b4100200020002d00004101711b21000b20011063024020012d0000410271450d00200020002802004102723602000b200220003602002000280200417c71220120006b41786a20014b0d02200021010c000b0b200220003602000c010b0b00000b20040b810101027f024020002802002201417c712202450d004100200220014102711b2201450d00200120012802044103712000280204417c71723602040b024020002802042201417c712202450d00200220022802004103712000280200417c7172360200200028020421010b20002001410371360204200020002802004103713602000b1c0020002001290200370200200041086a200141086a2802003602000b3001017f410021030240034020022003460d01200020036a200120036a2d00003a0000200341016a21030c000b0b20000b7201017f02400240200020016b2002490d002000210303402002450d02200320012d00003a00002002417f6a2102200141016a2101200341016a21030c000b0b2001417f6a21012000417f6a210303402002450d01200320026a200120026a2d00003a00002002417f6a21020c000b0b20000b2a01017f410021030240034020022003460d01200020036a20013a0000200341016a21030c000b0b20000b4001027f0340024020020d0041000f0b2002417f6a210220012d0000210320002d00002104200041016a2100200141016a210120042003460d000b200420036b0b0b96030100418080c0000b8c0301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040000000000000000000000756e6b6e6f776e2073656c6563746f723a20696e76616c696420706172616d7320666f722060603a2000000001000000000000003031323334353637383961626364656662616c616e6365736e616d656e756d66726f6d746f76616c75650000617373657400000000000000000000000000000000000000636f756c64206e6f74207265616420696e707574"
    };

    public static final String BINARY =
            org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", BINARY_ARRAY);

    public static final String[] SM_BINARY_ARRAY = {
        "0061736d010000000168106000017f60017f0060037f7f7f017f60027f7f0060047f7f7f7f0060037f7f7f0060057f7f7f7f7f0060047f7f7f7f017f60017f017f60027f7f017f60027f7f017e60037f7f7f017e60077f7f7f7f7f7f7f0060000060047f7f7e7e0060077f7f7f7e7e7e7f00026b060462636f730f67657443616c6c4461746153697a6500000462636f730b67657443616c6c4461746100010462636f730a67657453746f7261676500020462636f730666696e69736800030462636f730672657665727400030462636f730a73657453746f726167650004036463030503050501050304060303030706000800050504090401030303050504030104010704040603070a03030205030b0302030305010304030003030303010101050205050c010107000d080305010d030e0903030f020108030509080201030202020205030100110609017f01418080c0000b072604066d656d6f7279020009686173685f74797065004e066465706c6f79004f046d61696e00540a8c9701635601037f02400240200128020022022001280204470d00410021020c010b20012002410c6a36020002402001280208220341016a22042003490d00200120043602080c010b00000b20002002360204200020033602000b210002402002410c490d002002410b1008000b20002002360204200020013602000b040000000b210002402002410c490d002002410b1008000b20002002360204200020013602000ba10101047f230041206b2203240020012f01e2012104200341003a001820032004360214200341003602102003200341106a106420032d00082105200328020421062003280200210402400340200541ff01710d01200420064b0d01200320013602142003200236021020032004360218200420064f2105200420042006496a2104200341106a100b0c000b0b2000200136020420002002360200200341206a24000b6101047f230041206b22012400200041086a2202280200210320002802042104200141106a41086a200228020036020020012000290200370310200141086a200141106a1012200128020c220020033b01e00120002004360200200141206a24000b5f01027f02400240024020022802002203450d00200141016a22042001490d022000200336020420002004360200200020022f01e0013602080c010b200041003602040b024041940241e40120011b2201450d0020022001100d0b0f0b00000bf70101037f02402000450d00200110611a410028028c83402102200041786a220120012802002203417e713602000240024002402003417c71220420006b20044b0d00200041003602002000417c6a280200417c712204450d0120042d00004101710d012001106320042802002100024020012d0000410271450d002004200041027222003602000b200221012000417c71220020046b41786a20004d0d020b00000b02402003417c712204450d004100200420034102711b2203450d0020032d00004101710d0020002003280208417c7136020020032001410172360208200221010c010b200020023602000b4100200136028c83400b0b7201027f0240200241016a22042002490d000240200420014f0d00200120026b220520014b0d012005417f6a220120054b0d0120002004410c6c6a20002002410c6c6a2001410c6c10661a0b20002002410c6c6a22022003290200370200200241086a200341086a2802003602000f0b00000b6601027f0240200241016a22052002490d000240200520014f0d00200120026b220620014b0d012006417f6a220120064b0d01200020054103746a200020024103746a200141037410661a0b200020024103746a220220043a0004200220033602000f0b00000b3c01027f024020012802002202417f6a220320024b0d00200020033602002000200128020420012802084102746a41e4016a2802003602040f0b00000b3c01027f024020012802002202417f6a220320024b0d00200020033602002000200128020420012802084102746a41e4016a2802003602040f0b00000b3c01027f024020012802002202417f6a220320024b0d00200020033602002000200128020420012802084102746a41e4016a2802003602040f0b00000b7601037f230041106b2204240020002802082105200028020422002f01e2012106200441086a200141086a28020036020020042001290200370300200041046a200641016a220120052004100e20004188016a22062001200520022003100f200020013b01e201200441106a2400200620054103746a0ba20201057f230041106b2205240020002802082106200028020422072f01e2012108200541086a200141086a28020036020020052001290200370300200741046a200841016a220920062005100e20074188016a2009200620022003100f0240200641016a22012006490d00200141016a22022001490d0002402002200841026a22064f0d00200620016b220820064b0d012008417f6a220320084b0d01200741e4016a220820024102746a200820014102746a200341027410661a0b200720014102746a41e4016a2004360200200720093b01e20120012006200120064b1b2106200028020021000240034020062001460d01200520073602042005200036020020052001360208200141016a21012005100b0c000b0b200541106a24000f0b00000b2301017f024041e401101622000d0000000b200041003b01e2012000410036020020000b080020004104101b0b2301017f0240419402101622000d0000000b200041003b01e2012000410036020020000b7201017f230041106b220324000240024020014100480d000240024020020d00200341086a200141011019200328020c2102200328020821010c010b2003200141014101101a20032802042102200328020021010b20010d010b00000b2000200136020020002002360204200341106a24000b3501017f230041106b22032400200341086a200120024100101a200020032802083602002000200328020c360204200341106a24000b4b000240024020010d00410021010c010b20012002101b2102024002402003450d002002450d0120024100200110671a0c020b20020d010b410021020b20002001360204200020023602000b7c01027f230041106b220224002000106121002002410028028c834036020c0240200020012002410c6a106222030d00200220002001105f4100210320022802000d0020022802042203200228020c3602082002200336020c200020012002410c6a106221030b4100200228020c36028c8340200241106a240020030b840201037f230041106b22042400024002402002450d0002400240024020014100480d00200328020022050d01200420012002101920042802042105200428020021030c020b20004101360200200041086a41003602000c030b0240200328020422060d00200441086a200120024100101a200428020c2105200428020821030c010b024020012002101b22030d00410021030c010b20032005200610651a20052006100d200121050b024002402003450d0020002003360204410021010c010b2000200136020441012101200221050b20002001360200200041086a20053602000c010b2000200136020420004101360200200041086a41003602000b200441106a24000b2601017f024020002802004100200028020422001b2201450d002000450d0020012000100d0b0b5301037f230041106b2202240020012802002103200241086a2001280208220141001018200228020821042000200228020c3602042000200436020020042003200110651a20002001360208200241106a24000b7100024002400240024020014105490d002001417b6a0e020102030b20004204370200200041086a20013602000f0b20004205370200200041086a41053602000f0b2000428580808010370200200041086a41003602000f0b2000428680808010370200200041086a200141796a3602000bb20101037f230041206b220224000240024020002802042203200028020822046b20014f0d00200420016a22012004490d01200320036a22042003490d0120042001200420014b1b22014108200141084b1b2101024002402003450d00200241106a41086a410136020020022003360214200220002802003602100c010b200241003602100b200220014101200241106a101c20022802004101460d01200020022902043702000b200241206a24000f0b00000b3601017f2000200210202000280200200028020822036a2001200210651a0240200320026a220220034f0d0000000b200020023602080b4701027f230041106b22032400200341086a200241001018200328020821042000200328020c3602042000200436020020042001200210651a20002002360208200341106a24000b1d00024020012003470d0020002002200110651a0f0b200120031024000b040000000b040000000ba10301027f02402001418102490d00418002210403402004450d010240024020042001490d0020012004470d010c030b200020046a2c000041bf7f4a0d020b2004417f6a21040c000b0b0240200220014b0d00200320014b0d00200220034b0d00024002402002450d00024020022001490d0020022001460d010c020b200020026a2c00004140480d010b200321020b034002400240024020020d00410021020c010b024020022001490d0020012002470d02200121020c010b200020026a2c00004140480d010b200120026b220420014b0d022004450d02200020026a22022c00002201417f4a0d0241002105200220046a22032100024020044101460d00200241026a210020022d0001413f7141067421050b200141ff017141e001490d024100210220032104024020002003460d00200041016a210420002d0000413f7121020b200141ff017141f001490d02200141ff017121012002200572210041002102024020042003460d0020042d0000413f7121020b20004106742001411274418080f0007172200272418080c400471a0c020b2002417f6a21020c000b0b00000b040000000b1f01017f41002104024020012003470d0020002002200110684521040b20040bfc0101067f4100210441012105410121064100210703400240024002402006220820046a22062008490d00200620024f0d01200720046a22092007490d00200920024f0d0002400240200120066a2d000041ff01712206200120096a2d000022094b2003710d00200620094f200372450d0020062009460d01200841016a22062008490d024101210541002104200821070c050b200441016a22062004490d01200820066a22062008490d01200620076b220520064b0d010c030b200441016a22092004490d00200921042008210620092005470d03200820056a220620084f0d020b00000b20002005360204200020073602000f0b410021040c000b0b3701017f230041106b22042400200441086a4100200320012002102b200020042802083602002000200428020c360204200441106a24000b470002400240200120024b0d000240200220044b0d00200220016b220420024b0d02200020043602042000200320016a3602000f0b200220041008000b20012002102c000b",
        "00000b040000000bb30201087f41002104410121054101210641002107024003400240024002402006220820046a22062008490d00200620014f0d04200841016a22062008490d00200620046a22092006490d00200120096b220920014b0d00200920014f0d00200741016a220a2007490d00200a20046a220b200a490d002001200b6b220a20014b0d00200a20014f0d0002400240200020096a2d000041ff017122092000200a6a2d0000220a4b2003710d002009200a4f200372450d002009200a460d014101210541002104200821070c040b200441016a22062004490d01200820066a22062008490d01200620076b220520064b0d010c020b200441016a22062004490d00024020062005460d0020062104200821060c030b200820056a220620084f0d010b00000b410021040b20052002470d000b0b20070b3501017e42002102024003402001450d012001417f6a210142012000310000423f83862002842102200041016a21000c000b0b20020ba00201027f230041306b22022400024002401000220341034b0d002001450d0020004181083b01000c010b2002200310302002280200220310010240024002402001450d0020022002280208220136021420022003360210024020014104490d002002410036021c200241106a2002411c6a410410310d00200241206a20022802141030200241106a2002280220220120022802281031450d02200241206a101d0b200041003a0001410121010c020b200041003a0000200041046a4100360200200041086a2002290300370200200041106a200241086a2802003602000c020b200228021c21032000410c6a2002290224370200200041086a2001360200200041046a2003360200410021010b200020013a00002002101d0b200241306a24000b3602017f017e230041106b22022400200241086a200141011018200229030821032000200136020820002003370200200241106a24000b3a01037f02402000280204220320024922040d002001200220002802002205200210232000200320026b3602042000200520026a3602000b20040b8b0102027f017e230041106b2203240002400240200220026a22042002490d00200341086a20044100101820032903082105200041003602082000200537020003402002450d02200020012d0000220441047641b482c0006a2d0000103320002004410f7141b482c0006a2d000010332002417f6a2102200141016a21010c000b0b00000b200341106a24000bab0201027f230041106b2202240002400240024002400240200141ff004b0d000240200028020822032000280204470d00200041011020200028020821030b200028020020036a20013a0000200341016a22012003490d01200020013602080c040b2002410036020c2001418010490d0102402001418080044f0d0020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010c020b00000b20022001413f71418001723a000d2002200141067641c001723a000c410221010b20002002410c6a200110210b200241106a24000b190020002001200210022200ad422086200045ad84428006840bc10905037f017e047f027e017f230041206b22022400200241003a0008024002400240024002400240024002402001200241086a410110310d000240024020022d0008220341037122044103460d0002400240024020040e03000201000b200341027621030c030b200220033a000d200241013a000c200220013602082002410036021c200241086a2002411c6a410410360d03200228021c220341ffff034d0d03200341027621030c020b200220033a000d200241013a000c20022001360208200241003b011c200241086a2002411c6a410210360d0220022f011c220341ff014d0d02200341027621030c010b200341044f0d0120022001103720022802000d012002280204220341ffffffff034d0d010b20012802042003490d00200241086a20031030024020012002280208220320022802101031450d00200241086a101d0c010b4100200229020c2205422088a7220641796a2201200120064b1b2107200341036a417c7120036b2108410021010340200120064f0d070240024002400240200320016a2d0000220441187441187522094100480d002008417f460d03200820016b4103710d030340200120074f0d03200320016a220441046a280200200428020072418081828478710d03200141086a22042001490d02200421010c000b0b42808080808020210a428080808010210b024002400240024002402004418080c0006a2d0000417e6a0e030002010e0b200141016a22042006490d024200210a0c0c0b4200210a200141016a220c20064f0d0b2003200c6a2d0000210c0240024002400240200441907e6a0e050100000002000b200c41ff017141bf014b0d0c2009410f6a41ff017141024b0d0c200c41187441187541004e0d0c0c020b200c41f0006a41ff017141304f0d0b0c010b200c411874411875417f4a0d0a200c41ff0171418f014b0d0a0b200141026a220420064f0d0b200320046a2d000041c00171418001470d084200210b200141036a220420064f0d0c200320046a2d000041c00171418001460d02428080808080e000210a0c0a0b4200210a200141016a220c20064f0d0a2003200c6a2d0000210c0240024002400240200441e001460d00200441ed01460d012009411f6a41ff0171410c490d02200c41ff017141bf014b0d0c200941fe017141ee01470d0c200c41187441187541004e0d0c0c030b200c41e0017141a001470d0b0c020b200c411874411875417f4a0d0a200c41ff017141a0014f0d0a0c010b200c411874411875417f4a0d09200c41ff017141bf014b0d090b4200210b200141026a220420064f0d0b200320046a2d000041c00171418001470d070c010b42808080808020210a428080808010210b200320046a2d000041c00171418001470d0a0b200441016a21010c030b00000b20012006200120064b1b21040340024020042001470d00200421010c030b200320016a2c00004100480d02200141016a21010c000b0b200141016a21010c000b0b200041003602000c060b428080808080c000210a0c010b42808080808020210a0b428080808010210b0c010b4200210b0b200a200b842001ad84210a0b024020012006490d0020002005370204200020033602000c010b2002200a3702142002200537020c20022003360208200241086a101d200041003602000b200241206a24000b4301017f20002f01042103200041003a0004024020034101710d0020002802002001200210310f0b200120034108763a00002000280200200141016a2002417f6a10310b4d01027f230041106b22022400410021032002410036020c0240024020012002410c6a410410310d00200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6f01037f230041106b220224000240024041002802908340220320016a22042003490d002004418080014b0d00200241086a2003200410392002280208200228020c20002001102341002802908340220320016a220120034f0d010b00000b410020013602908340200241106a24000b5001017f02400240200120024b0d0002402002418080014b0d00200220016b220320024b0d022000200336020420002001419483c0006a3602000f0b2002418080011008000b20012002102c000b00000b3601017f230041106b22012400200141086a41002802908340103b200020012802083602002000200128020c360204200141106a24000b3a01017f230041106b22022400200241086a419483c000418080012001103c200020022802083602002000200228020c360204200241106a24000b21000240200320024d0d00200320021008000b20002003360204200020013602000b4601017f230041106b22022400200241086a41002802908340103b20022002280208200228020c2001103c2000200228020036020020002002280204360204200241106a24000b2d01027f230041106b22002400200041086a410041002802908340103920002802082101200041106a240020010ba50101037f230041106b220224000240024002402001280208220341046a22042003490d002001280200210120002004104002402003413f4b0d002000200341027410410c030b0240200341ffff004b0d00200220034102744101723b010e20002002410e6a410210210c030b200341ffffffff034b0d012003410274410272200010420c020b00000b2000410310412003200010420b2000200120031021200241106a24000b3602017f017e230041106b22022400200241086a200141001018200229030821032000410036020820002003370200200241106a24000b2601017f230041106b22022400200220013a000f20002002410f6a41011021200241106a24000b2601017f230041106b220224002002200036020c20012002410c6a41041021200241106a24000b940202037f017e230041306b22012400200141086a41084100101820012802082102200128020c2103200041146a41023a0000200042083702082000200336020420002002360200200242e2c2b18be6edd8b2f30037000020014109410010182001410036022820012001290300370320200141206a41c482c000410810210240200128022822022001280224470d00200141206a41011020200128022821020b200128022020026a41243a00000240200241016a220320024f0d0000000b200141186a2003360200200120012903202204370310200041003602182000411c6a2004370200200041246a2003360200200041286a4109360200200041346a42003702002000412c6a4100360200200141306a24000b30002000101d0240200041146a2d00004102460d00200041106a2802004108100d0b2000411c6a101d200041306a10450ba30301067f230041306b22012400200028020421022000410036020402402002450d0020002802002103024003402003450d01200141003602282001200236022420012003360220200141186a200141206a1010200128021c2102200128021821030c000b0b20002802082104410021050340024020040d00410021030340200141206a20032002100c20012802242202450d03200128022021030c000b0b2004417f6a21044100210620052100200221030340024002400240200020032f01e2014f0d00200041016a2105024020060d00200321020c020b200120053602282001200336022420012006360220200141106a200141206a101020012802142102200128021021060340024020060d00410021050c030b200141003602282001200236022420012006360220200141086a200141206a1010200128020c2102200128020821060c000b0b200141206a20062003100c200128022422020d01410021020b20032000410c6c6a41046a101d200320004103746a4188016a2802004118100d0c020b20012802282100200128022021",
        "06200221030c000b0b0b200141306a24000bbc0102047f027e230041106b2203240020032002103f02400240200141186a2201200328020022042003280208220510472206450d002006280200220141086a410020012903004201511b21010c010b20012004200510480240200120042005104722010d00410021010c010b2001280200220141086a410020012903004201511b21010b2003101d200141e882c00020011b22012903002107200141086a29030021082002101d2000200837030820002007370300200341106a24000bf10101057f230041206b22032400024002402000411c6a2802002204450d00200041186a2802002105034020042f01e2012106200341003602182003200441046a2200360210200320002006410c6c6a360214024002400340200341086a200341106a1006200328020c2200450d012003280208210702402001200220002802002000280208104d41187441187541016a0e03000301000b0b200721060b2005450d022003200636021820032004360214200320053602102003200341106a101120032802042104200328020021050c010b0b200420074103746a4188016a21000c010b410021000b200341206a240020000bca0202057f027e230041c0006b22032400200341306a200010582003280234210420032802302001200210214101210502402004280200220641016a22072006480d0020042007360200200341286a20001059200328022c210402400240200328022822062802002006280208103e10342208a7410171450d000c010b2008422088a72205418180014f0d01410020053602908340200341206a2005103d20032003290320370338200341086a200341386a105520032802084100472105200341186a2903002109200329031021080b20042802002206417f6a220720064e0d00200420073602002003200010582003280204210402402003280200220628020820002802102207490d00200620073602080b2004280200220641016a22072006480d00200420073602002000200120022005410173ad200820094100105a200341c0006a24000f0b00000b4701027f230041106b22032400200341086a200241001018200328020821042000200328020c3602042000200436020020042001200210651a20002002360208200341106a24000b990403077f017e067f024002402005417f6a220720054b0d0020012802082208417f6a210920052001280210220a6b220b20054b210c2001280214210d2001290300210e0340200d20076a220f200d490d010240200f2003490d00200120033602144100210f0c030b0240200e2002200f6a310000423f8388420183500d0020082008200128021c221020061b200820104b1b220f2005200f20054b1b2111034002402011200f470d004100201020061b21112009210f034002402011200f41016a490d00200d20056a220f200d490d062001200f360214024020060d002001410036021c0b2000200d360204200041086a200f3602004101210f0c070b200f20054f0d05200d200f6a2212200d490d05201220034f0d052004200f6a2113200f417f6a210f20132d000041ff0171200220126a2d0000460d000b200d200a6a220f200d490d042001200f360214200f210d20060d03200c0d042001200b36021c200f210d0c030b200d200f6a2212200d490d03201220034f0d032004200f6a2113200f41016a2214210f20132d000041ff0171200220126a2d0000460d000b2014417f6a221220086b220f20124b0d02200f41016a2212200f490d02200d20126a220f200d490d022001200f360214200f210d20060d012001410036021c200f210d0c010b200d20056a220f200d490d012001200f360214200f210d20060d002001410036021c200f210d0c000b0b00000b2000200f3602000b5b01017f230041206b22012400200141086a4101410010182001410036021820012001290308370310200120002d00003a001f200141106a2001411f6a41011021200128021020012802181003200141106a101d200141206a24000b2a01017f230041106b2201240020012000103f2001280200200128020810042001101d200141106a24000b310002402000200220032001200120034b1b106822000d00417f200120034720012003491b0f0b417f410120004100481b0b040041010be90201057f23004190016b22002400200041186a1043200041d8006a4100102f02400240024020002d00580d00200041f0006a41086a200041d8006a410c6a2902003703002000200029025c37037020004180016a41086a200041f0006a410c6a28020036020020002000290274370380010240200041186a10500d00200041106a200041186a410c6a220110512000280214210220002802104101410010522002280200220341016a22042003480d0320022004360200200041086a20011051200028020c21020240200028020822032d00044102460d00200341013a00040b2002280200220341016a22012003480d03200220013602000b200041186a105320004180016a101d0c010b200041f0006a41f882c00041141022200041f0006a104c200041f0006a101d0b200041186a101d02402000412c6a2d00004102460d00200041286a2802004108100d0b200041346a101d200041c8006a104520004190016a24000f0b00000b0d002000105c200041106a105d0b2a0002402001280200450d0041101027000b2001417f360200200020013602042000200141046a3602000b4701017f024020002d00044102470d004108410410572203200236020420032001360200200041003a0004200020033602000f0b200028020022002002360204200020013602000ba70901087f23004190016b22012400200141d8006a2000410c6a2202105e200128025c22032802002204417f6a220520044e210402400240024020012802582d000422064102460d0020040d02200320053602002006450d01200141d0006a200210512001280254210402402001280250105d2203450d00410041003602908340200028020821052000280200210620012003280200360260200141e0006a41041038200141c8006a103a200620052001280248200128024c10050b2004280200220341016a22052003480d0220042005360200200141c0006a20021051200128024421040240200128024022032d00044102460d00200341003a00040b2004280200220341016a22052003480d02200420053602000c010b20040d01200320053602000b41002102024002402000412c6a28020041016a220441004c0d002000200436022c0240200041346a28020022030d0041002103410021040c020b20032102200041306a28020022042105034020032f01e2012106024020050d0020040d04200041386a28020021040c030b2004450d03200141003602682001200236026420012005360260200141386a200141e0006a1011200128023c210220012802382105200120063602682001200336026420012004360260200141306a200141e0006a101120012802342103200128023021040c000b0b41181027000b200041186a2107200141f4006a2006360200200141e0006a41106a20033602002001420037036820012002360264200120053602600340024002402004450d0020012004417f6a360278200141e0006a410020012802641b22082802002103200828020821022008280204210402400340200220042f01e201490d0120042802002205450d01200341016a22062003490d0520042f01e001210220062103200521040c000b0b200241016a2106024020030d00200421050c020b200120063602880120012004360284012001200336028001200141286a20014180016a1011200128022c2105200128022821030340024020030d00410021060c030b200141003602880120012005360284012001200336028001200141206a20014180016a101120012802242105200128022021030c000b0b200028022c2204417f6a220320044e0d022000200336022c20014190016a24000f0b2008200536020420084100360200200820063602080240200420024103746a2203418c016a2d0000450d0020034188016a28020022032903004201520d00200141186a20071058200128021c2105200128021820042002410c6c6a220441046a2802002004410c6a28020010212005280200220441016a22022004480d0220052002360200200141106a2007105920012802102204280200210541004100360290834020042802082102200128021421042001200341106a29030037038801200120032903083703800120014180016a41101038200141086a103a200520022001280208200128020c100520042802002203417f6a220520034e0d02200420053602002001200710582001280204210402402001280200220328020820002802282205490d00200320053602080b2004280200220341016a22052003480d02200420053602000b200128027821040c000b0b00000be51f07027f017e017f017e017f057e047f230041c0036b22002400200041a8016a1043200041f0026a4101102f0240024002400240024002400240024002400240024002400240024020002d00f0024101460d00200041e8016a41086a20004180036a28020022013602002000200041f0026a41086a29030022023703e80120002802f4022103200041f8016a41086a2001360200200020023703f801200341ee87a2a77c460d02200341d7b3a69906460d03200341c6d98aaa03460d04200341eafaffa67b460d01200020033602f00220004188016a410472200041f0026a41041049410021032000410036028801200041f8016a101d200041a8016a10440c0d0b4102210320004102360288010c0b0b200020002802800236029402200020002802f80136029002200041b0036a20004190026a1035024020002802b003450d00200041a0026a41086a200041b0036a41086a2802002203360200200020002903b00322023703a002200041f0026a41086a2003360200200020023703f0022000200041a8016a200041f0026a1046200041086a290300210220002903002104200041d0026a41101040200020023703f802200020043703f002200041d0026a200041f0026a4110102120002802d00220002802d8021003200041d0026a101d20004103360288010c0a0b200041f0026a41047241cc82c00041041022200041f0026a41106a22032000280290022000280294021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c090b200020002802800236029402200020002802f80136029002200041b0036a20004190026a103520002802b003450d02200041a0026a41086a2203200041b0036a41086a280200360200200020002903b0033703a002200041106a20004190026a105502402000",
        "290310a70d00200041106a41106a290300210220002903182104200041f0026a41086a2003280200360200200020002903a0023703f002200041a8016a200041f0026a200420021056200041a8016a105320004103360288010c090b200041f0026a41047241d082c00041031022200041f0026a41106a200028029002200028029402104920004188016a410c6a200041f0026a410c6a29020037020020004188016a41146a200041f0026a41146a2902003702002000410136028801200020002902f40237028c01200041a0026a101d0c080b200020002802800236028c02200020002802f80136028802200041b0036a20004188026a103520002802b003450d0220004190026a41086a200041b0036a41086a2203280200360200200020002903b00337039002200041b0036a20004188026a103520002802b003450d03200041a0026a41086a2003280200360200200020002903b0033703a002200041c8006a20004188026a1055024020002802480d00200041c8006a41106a290300210220002903502104200041b0026a41086a20004190026a41086a28020036020020002000290390023703b002200041d0026a41086a200041a0026a41086a280200360200200020002903a0023703d002200041f0026a200041b0026a101e200041386a200041a8016a200041f0026a104602400240200029033822062004542201200041386a41086a2903002207200254200720025122031b0d00200041f0026a200041b0026a101e200041a8016a200041f0026a200620047d200720027d2001ad7d1056200041f0026a200041d0026a101e200041286a200041a8016a200041f0026a1046200041286a41086a290300210820002903282109200041f0026a200041d0026a101e200920047c220a2009542201200820027c2001ad7c220920085420092008511b0d07200041a8016a200041f0026a200a20091056200041d0026a101d200041b0026a101d200041a8016a21010c010b200041d0026a101d200041b0026a101d200041a8016a21010b2000200620045a200720025a20031b3a00f00220011053200041f0026a104b20004103360288010c080b200041f0026a41047241d982c00041051022200041f0026a41106a200028028802200028028c02104920004188016a410c6a200041f0026a410c6a29020037020020004188016a41146a200041f0026a41146a2902003702002000410136028801200020002902f40237028c01200041a0026a101d0c060b200020002802800236029402200020002802f80136029002200041b0036a20004190026a1035024020002802b003450d00200041a0026a41086a200041b0036a41086a2802002203360200200020002903b00322023703a002200041b0026a41086a2003360200200020023703b0022002a72101024002402003450d0020004180016a2001200341001029200028028401210b2000280280012105200041f8006a2001200341011029200028027c210c200041f0006a2001200320052000280278220d2005200d4b220e1b220d102a200b200c200e1b2205200d6a220b2005490d062000280274210c2000280270210e200041e8006a2005200b20012003102b02400240200e200c2000280268200028026c10280d002003200d6b220520034b0d08200d2005200d20054b1b220b41016a2205200b490d08417f210b20012003102e2102200d210c417f210e0c010b4100210b20032001200320054100102d220c2001200320054101102d220e200c200e4b1b6b220c20034b0d07200041e0006a200120032005102a20002802602000280264102e21022003210e0b200041ac036a2003360200200041a4036a410036020020004198036a200e36020020004194036a200b3602002000418c036a420037020020004188036a200536020020004184036a200c36020020004180036a200d360200200041f8026a2002370300200020013602a803200041e082c0003602a003200041013602f0022002422088a7210d200321050c010b41002105200041ac036a4100360200200041a4036a4100360200200041fc026a4181023b0100200041f0026a41086a4100360200200020013602a803200041e082c0003602a003200042003703f0024101210d0b024002402003450d00200041f8026a2103024020004194036a280200417f460d00200041d0026a200341e082c0004100200120054100104a0c020b200041d0026a200341e082c0004100200120054101104a0c010b20002802f40222030d060240200d41ff0171450d00200041d8026a2003360200200020033602d402200041013602d0020c010b200041003602d0020b20002802d0022103200041b0026a101d200020033a00f002200041f0026a104b20004103360288010c070b200041f0026a41047241e082c00041051022200041f0026a41106a22032000280290022000280294021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c060b200041f0026a41047241cc82c00041041022200041f0026a41106a22032000280290022000280294021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c050b200041f0026a41047241d382c00041041022200041f0026a41106a2203200028028802200028028c021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c040b200041f0026a41047241d782c00041021022200041f0026a41106a2203200028028802200028028c021049200041d0026a41086a200041f0026a41086a2903002202370300200041d0026a41106a20032903002204370300200041b0026a41086a22032002370300200041b0026a41106a22012004370300200041b0026a41186a2205200041f0026a41186a280200360200200041013602f002200020002903f0023703b00220004188016a41186a200528020036020020004188016a41106a200129030037030020004188016a41086a2003290300370300200020002903b002370388010c020b00000b41e082c0004100200341001026000b20004190026a101d0b200041f8016a101d20002802880121030b200041a8016a10440b024002400240024020034103460d0020004188016a41047221010240024020030e03030001030b200041b0036a41086a2203200141086a280200360200200020012902003703b003200041b0026a41086a2201200041a0016a280200360200200020004198016a2903003703b002200041d0026a419282c00041141022200041d0026a20002802b00320032802001021200041d0026a41a682c00041031021200041a8016a20002802b00220012802001032200041d0026a20002802a80120002802b0011021200041a8016a101d200041f0026a41086a200041d0026a41086a280200360200200020002903d0023703f002200041003a00fc02200041b0026a101d200041b0036a101d0c030b200041f0026a41f882c00041141022200041003a00fc020c020b200042003702f402200041013a00fc02200041002802ac82403602f0020c020b200041b0026a41086a2203200141086a280200360200200020012902003703b002200041d0026a418082c00041121022200041a8016a20002802b00220032802001032200041d0026a20002802a80120002802b0011021200041a8016a101d200041f0026a41086a200041d0026a41086a280200360200200020002903d0023703f002200041003a00fc02200041b0026a101d0b200041a8016a200041f0026a101e200041a8016a104c200041a8016a101d0b200041f0026a101d200041c0036a24000b6d04017f017e017f027e230041106b2202240042002103200241086a22044200370300200242003703000240024020012002411010310d0020042903002105200229030021060c010b420121030b2000200637030820002003370300200041106a2005370300200241106a24000bd90202057f017e230041106b22042400024002400240200010502205450d002005280200417f460d0220042001103f02400240200041186a22052004280200220620042802082207105b2208450d00200841013a0004200828020022082903002109200842003703000c010b20052006200710480240200520062007105b22080d00420021090c010b200841013a0004200828020022082903002109200842003703000b02400240200520062007105b2208450d0020082802002205200237030820054201370300200541106a2003370300200841013a00040c010b2005200620074201200220034101105a0b024020094201510d002000105c200041146a2d00004102460d03200041013a0014200041106a28020022002802004101470d022000280204220541016a22062005490d03200020063602040b2004101d2001101d200441106a24000f0b41d0001025000b41d3001025000b00000b1300024020002001101b22000d0000000b20000b2a0002402001280200450d0041101027000b2001417f360200200020013602042000200141046a3602000b3301017f0240200128020041016a220241004a0d0041181027000b20012002360200200020013602042000200141046a3602000be20d010f7f23004180016b220724004118410810572208200437030820082003370300200841106a2005370300024002400240024002400240024020002802140d002000417f36021441002109200741c8006a200241001018200728024c210a2007280248200120021065210b200720023602682007200a3602642007200b360260024002402000411c6a280200220c450d00200028021821090c010b20001015220c36021c200041003602180b02400340200c2f01e201210d200741003602782007200c41046a220136027020072001200d410c6c6a36027402400340200741c0006a200741f0006a100620072802442201450d012007280240210e0240200b200220012802002001280208104d41187441187541016a",
        "0e03000401000b0b200e210d0b02402009450d002007200d3602782007200c36027420072009360270200741386a200741f0006a1012200728023c210c200728023821090c010b0b200741003602502007200dad422086200cad8437025402400240200c2f01e201410b490d00200741f0006a200d101f200741f8006a280200210f200728027421102007280270210110152111200c2f01e201220d20016b220e200d4b0d09200e417f6a2209200e4b0d09201120093b01e201200141016a22122001490d09200d20126b220e200d4b0d09200c20014103746a220d4188016a2802002113200d418c016a2d00002114200c2001410c6c6a220d41046a2802002115200d41086a2902002105200741306a201141046a20091007200e2007280234470d092007280230200c2012410c6c6a41046a200e410c6c10651a200741286a20114188016a20091009200e200728022c470d092007280228200c20124103746a4188016a200e41037410651a200c20013b01e2012007200f36026820072011200c20101b3602644100210d20074100360260200720023602782007200a3602742007200b360270200741e0006a200741f0006a2008200610131a20144101712109410021020340200c2802002201450d02200d41016a220e200d490d0a2007200c2f01e001220b360258200720013602542007200e360250200e417f6a2002470d0a2009410171210a20012f01e201410b490d06200741f0006a200b101f200728027821122007280274210f2007280270210220012f01e20121061017210b20012f01e201220920026b220c20094b0d0a200c417f6a2208200c4b0d0a200b20083b01e201200241016a220c2002490d0a2009200c6b220d20094b0d0a20012002410c6c6a220941086a2902002103200941046a2802002110200120024103746a22094188016a28020021142009418c016a2d00002109200741206a200b41046a20081007200d2007280224470d0a20072802202001200c410c6c6a41046a200d410c6c10651a200741186a200b4188016a20081009200d200728021c470d0a20072802182001200c4103746a4188016a200d41037410651a200120023b01e201200641016a220d200c6b2202200d4b0d0a200b2f01e201220d41016a2108200d410c4f0d0520022008470d0a200b41e4016a2001200c4102746a41e4016a200241027410651a200741106a200b200e100a2007280214210b20072802102102200e210c2001210d0240200f450d002002210c200b210d0b20094101712109200720123602682007200d3602642007200c3602602007200537027420072015360270200741e0006a200741f0006a2013200a20111014200e210d2010211520032105200b2111201421132001210c0c000b0b200720023602782007200a3602742007200b360270200741d0006a200741f0006a2008200610131a0c050b2000411c6a280200220b450d07200028021821011017220e200b3602e401200141016a220b2001490d07200741086a200e200b100a2007280208210b2000200728020c220136021c2000200b360218200b417f6a220e200b4b0d07200e2002470d0720012f01e2012202410a4b0d072001200241016a220e3b01e20120012002410c6c6a220c41086a2005370200200c41046a2015360200200120024103746a2202418c016a20094101713a000020024188016a20133602002001200e4102746a41e4016a20113602002007200e360278200720013602742007200b360270200741f0006a100b200041206a2201280200220b41016a2202200b490d070c050b200741e0006a101d200c200e4103746a2201418c016a20063a000020014188016a220128020021022001200836020020024118100d0c050b41101027000b2008410c1008000b2007200537027420072015360270200741d0006a200741f0006a2013200a201110140b200041206a2201280200220b41016a2202200b490d020b200120023602000b2000280214220141016a22022001480d002000200236021420074180016a24000f0b00000bf10101057f230041206b22032400024002402000411c6a2802002204450d00200041186a2802002105034020042f01e2012106200341003602182003200441046a2200360210200320002006410c6c6a360214024002400340200341086a200341106a1006200328020c2200450d012003280208210702402001200220002802002000280208104d41187441187541016a0e03000301000b0b200721060b2005450d022003200636021820032004360214200320053602102003200341106a101220032802042104200328020021050c010b0b200420074103746a4188016a21000c010b410021000b200341206a240020000b810202057f027e230041306b22012400200141206a2000410c6a2202105e0240200128022422032802002204417f6a220520044e0d0020012802202d0004210420032005360200024020044102470d0042012106024020002802002000280208103e10342207a74101710d002007422088a72200418180014f0d02410020003602908340200141186a2000103d20012001290318370328200141106a200141286a103720013502144220862001280210410047ad8421060b200141086a20021051200128020c210020012802082006a7417f734101712006422088a710522000280200220441016a22032004480d01200020033602000b200141306a24000f0b00000b2600024020002d00044102470d0000000b2000280200220041046a410020002802004101461b0b3301017f0240200128020041016a220241004a0d0041181027000b20012002360200200020013602042000200141046a3602000bc80101017f0240200141ffffffff03712001470d00200241c0006a22032002490d00200341ffffffff01712003470d002001410274220120034103742203200120034b1b220141086a22032001490d00024002402003418080041060220340002201417f470d0041012103410021010c010b200141ffff03712001470d01200341ffff03712003470d012003411074220341786a20034b0d012001411074220142003702042001200120036a410272360200410021030b20002001360204200020033602000f0b00000b2901017f02400240200020016a22022000490d002002417f6a220020024d0d010b00000b200020016e0b08002000410410600bc104010b7f2000410274210341002104410020016b2105200041ffffffff037120004721062001417f6a220720014b210820022802002100024003402000450d01200021010240024003400240200128020822004101710d0020060d032001280200417c712209200141086a220a6b220b20094b0d03200b2003490d02200920036b220c20094b0d0320080d03200a41086a220b200a490d03200b41c0006a220d200b490d0302400240200d200c200571220b4d0d002007200a710d0420022000417c7136020020012001280200410172360200200121000c010b200b41786a2200200b4b0d04200920006b220220094b0d04200241786a20024b0d04200041003602082000420037020020002001280200417c71360200024020012802002202417c712209450d004100200920024102711b2202450d00200220022802044103712000723602040b2000200028020441037120017236020420012001280208417e7136020820012001280200220241037120007222093602000240024020024102710d00200028020021010c010b20012009417d713602002000200028020041027222013602000b200020014101723602000b200041086a21040c050b20012000417e71360208024002402001280204417c7122000d00410021000c010b4100200020002d00004101711b21000b20011063024020012d0000410271450d00200020002802004102723602000b200220003602002000280200417c71220120006b41786a20014b0d02200021010c000b0b200220003602000c010b0b00000b20040b810101027f024020002802002201417c712202450d004100200220014102711b2201450d00200120012802044103712000280204417c71723602040b024020002802042201417c712202450d00200220022802004103712000280200417c7172360200200028020421010b20002001410371360204200020002802004103713602000b1c0020002001290200370200200041086a200141086a2802003602000b3001017f410021030240034020022003460d01200020036a200120036a2d00003a0000200341016a21030c000b0b20000b7201017f02400240200020016b2002490d002000210303402002450d02200320012d00003a00002002417f6a2102200141016a2101200341016a21030c000b0b2001417f6a21012000417f6a210303402002450d01200320026a200120026a2d00003a00002002417f6a21020c000b0b20000b2a01017f410021030240034020022003460d01200020036a20013a0000200341016a21030c000b0b20000b4001027f0340024020020d0041000f0b2002417f6a210220012d0000210320002d00002104200041016a2100200141016a210120042003460d000b200420036b0b0b96030100418080c0000b8c0301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040000000000000000000000756e6b6e6f776e2073656c6563746f723a20696e76616c696420706172616d7320666f722060603a2000000001000000000000003031323334353637383961626364656662616c616e6365736e616d656e756d66726f6d746f76616c75650000617373657400000000000000000000000000000000000000636f756c64206e6f74207265616420696e707574"
    };

    public static final String SM_BINARY =
            org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", SM_BINARY_ARRAY);

    public static final String[] ABI_ARRAY = {
        "[{\"inputs\":[],\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"balance_of\",\"outputs\":[{\"internalType\":\"uint128\",\"type\":\"uint128\"}],\"type\":\"function\"},{\"conflictFields\":[{\"kind\":1,\"path\":[],\"read_only\":false,\"slot\":0},{\"kind\":3,\"path\":[0],\"read_only\":false,\"slot\":0}],\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint128\",\"name\":\"num\",\"type\":\"uint128\"}],\"name\":\"set\",\"outputs\":[],\"type\":\"function\"},{\"conflictFields\":[{\"kind\":0,\"path\":[],\"read_only\":false,\"slot\":0}],\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"type\":\"bool\"}],\"type\":\"function\"}]"
    };

    public static final String ABI = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", ABI_ARRAY);

    public static final String FUNC_BALANCE_OF = "balance_of";

    public static final String FUNC_SET = "set";

    public static final String FUNC_TRANSFER = "transfer";

    protected ParallelOkLiquid(String contractAddress, Client client, CryptoKeyPair credential) {
        super(getBinary(client.getCryptoSuite()), contractAddress, client, credential);
    }

    public static String getBinary(CryptoSuite cryptoSuite) {
        return (cryptoSuite.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY);
    }

    public static String getABI() {
        return ABI;
    }

    public BigInteger balance_of(String name) throws ContractException {
        final Function function =
                new Function(
                        FUNC_BALANCE_OF,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(name)),
                        Arrays.<TypeReference<?>>asList(new TypeReference<Uint128>() {}));
        return executeCallWithSingleValueReturn(function, BigInteger.class);
    }

    public TransactionReceipt set(String name, BigInteger num) {
        final Function function =
                new Function(
                        FUNC_SET,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(name),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128(num)),
                        Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public void set(String name, BigInteger num, TransactionCallback callback) {
        final Function function =
                new Function(
                        FUNC_SET,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(name),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128(num)),
                        Collections.<TypeReference<?>>emptyList());
        asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForSet(String name, BigInteger num) {
        final Function function =
                new Function(
                        FUNC_SET,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(name),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128(num)),
                        Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple2<String, BigInteger> getSetInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function =
                new Function(
                        FUNC_SET,
                        Arrays.<Type>asList(),
                        Arrays.<TypeReference<?>>asList(
                                new TypeReference<Utf8String>() {},
                                new TypeReference<Uint128>() {}));
        List<Type> results =
                this.functionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple2<String, BigInteger>(
                (String) results.get(0).getValue(), (BigInteger) results.get(1).getValue());
    }

    public TransactionReceipt transfer(String from, String to, BigInteger value) {
        final Function function =
                new Function(
                        FUNC_TRANSFER,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(from),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(to),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128(value)),
                        Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public void transfer(String from, String to, BigInteger value, TransactionCallback callback) {
        final Function function =
                new Function(
                        FUNC_TRANSFER,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(from),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(to),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128(value)),
                        Collections.<TypeReference<?>>emptyList());
        asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForTransfer(String from, String to, BigInteger value) {
        final Function function =
                new Function(
                        FUNC_TRANSFER,
                        Arrays.<Type>asList(
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(from),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(to),
                                new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint128(value)),
                        Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple3<String, String, BigInteger> getTransferInput(
            TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function =
                new Function(
                        FUNC_TRANSFER,
                        Arrays.<Type>asList(),
                        Arrays.<TypeReference<?>>asList(
                                new TypeReference<Utf8String>() {},
                                new TypeReference<Utf8String>() {},
                                new TypeReference<Uint128>() {}));
        List<Type> results =
                this.functionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple3<String, String, BigInteger>(
                (String) results.get(0).getValue(),
                (String) results.get(1).getValue(),
                (BigInteger) results.get(2).getValue());
    }

    public Tuple1<Boolean> getTransferOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function =
                new Function(
                        FUNC_TRANSFER,
                        Arrays.<Type>asList(),
                        Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
        List<Type> results =
                this.functionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<Boolean>((Boolean) results.get(0).getValue());
    }

    public static ParallelOkLiquid load(
            String contractAddress, Client client, CryptoKeyPair credential) {
        return new ParallelOkLiquid(contractAddress, client, credential);
    }

    public static ParallelOkLiquid deploy(
            Client client, CryptoKeyPair credential, String contractPath) throws ContractException {
        return deploy(
                ParallelOkLiquid.class,
                client,
                credential,
                getBinary(client.getCryptoSuite()),
                getABI(),
                null,
                contractPath);
    }
}
